home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / C-Communications / (c)c6.d64 / xmodem src 6.81 (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  30KB  |  1,148 lines

  1. 0 REM --------------------------------
  2. 5 REM
  3. 10 REM   XMOBUF VER 6.8 SOURCE CODE
  4. 15 REM     (C) 1985 CHRIS KAISER
  5. 20 REM   OKAY TO COPY OR GIVE AWAY
  6. 25 REM   BUT NOT TO SELL FOR PROFIT
  7. 30 REM
  8. 35 REM ---------------------------------
  9. 40 GOTO240:REM SET UP
  10. 45 REM ---------------------------------
  11. 50 REM   MAIN TERMINAL LOOP
  12. 55 REM --------------------------------
  13. 60 GET#5,R$:IFR$=""THEN125
  14. 65 R=F%(ASC(R$)):PRINTL$CHR$(R);:POKEU,.:IFBD=.THEN60
  15. 70 POKEBP,(R):BP=BP+W:IFBP>BBTHEN105
  16. 75 IFXOTHEN60
  17. 80 BJ=PEEK(667):BK=PEEK(668)
  18. 85 IFBJ>BKTHENBM=BJ-BK
  19. 90 IFBK>BJTHENBM=ABS(BK-(BJ+255))
  20. 95 IFBM>180THENPRINT#5,CHR$(XF);:XO=W
  21. 100 GOTO60
  22. 105 PRINTJ$J$"[ [194]UFFER [198]ULL & [195]LOSED ]":BD=0:PRINT#5,CHR$(XF);
  23. 110 PRINTJ$"[ [195][212][210][204]-[209] [195]ONTINUES ]"
  24. 115 GOTO60
  25. 120 PRINTO$;
  26. 125 IFXOTHENPRINT#5,CHR$(XN);:BM=.:XO=.
  27. 130 GETA$:POKE646,D1
  28. 135 IFA$=""THENPRINTCHR$(164)CHR$(157);:GOTO60:REM CURSOR
  29. 140 X=0:IFBR=0THEN180
  30. 145 IFBRTHENX=ASC(A$)
  31. 150 IFX=13THENPRINTL$;
  32. 155 IFX=145THENPRINTL$;
  33. 160 IFX=157THENPRINTL$;
  34. 165 IFX=17THENPRINTL$;
  35. 170 IFX=19THENPRINTL$;
  36. 175 IFBRTHENPRINTA$;:REM 64 TO 64 HALF DUPLEX
  37. 180 POKEU,0
  38. 185 IFA$=G$THENPRINTL$J$:GOTO1825:REM <F1> TO MAIN MENU
  39. 190 IFA$=CHR$(134)THEN3440:REM <F3> TO BUFFER MENU
  40. 195 IFA$=CHR$(135)THEN3565:REM <F5> OPEN BUFFER
  41. 200 IFA$=CHR$(136)THEN3590:REM <F7> CLOSE BUFFER
  42. 205 IFA$=CHR$(140)THEN4260:REM <F8> ZERO BUFFER
  43. 210 IFA$=CHR$(139)THEN5120:REM <F6> PRINT SCREEN
  44. 215 PRINT#5,CHR$(T%(ASC(A$)));
  45. 220 GOTO60
  46. 225 REM ------------------------------
  47. 230 REM  SET UP AND INITIALIZE ROUTINE
  48. 235 REM ------------------------------
  49. 240 D1=6:D2=15:D3=15:REM DEFAULT COLORS
  50. 245 POKE646,D1:POKE53280,D2:POKE53281,D3
  51. 250 E$=CHR$(147):REM CLRHOME
  52. 255 J$=CHR$(13)
  53. 260 PRINTCHR$(14)
  54. 265 GOTO2915:REM GET USER COLORS
  55. 270 OPEN5,2,0,CHR$(0)+CHR$(0)+CHR$(61)+CHR$(1):REM DEEPAKS 1200 BAUD OPENER
  56. 275 REM THANKS FOR THAT OPEN STATEMENT, DEEPAK!
  57. 280 GOTO290
  58. 285 OPEN5,2,0,CHR$(6)+CHR$(0)+CHR$(0)+CHR$(0):REM VANILLA 300 BAUD OPENER
  59. 290 D1=PEEK(646):D2=PEEK(53280):D3=PEEK(53281)
  60. 295 POKE56,92:POKE52,92:REM DEC. FOR BIGGER BUFFER-CHECK FRE0 AFTER RUN 1ST
  61. 300 R$="":REM INSTEAD OF A$ FOR RX SIDE
  62. 305 CLOSE15:OPEN15,8,15
  63. 310 REM ------------------------
  64. 315 REM DEFINE BUFFER POINTERS
  65. 320 REM ------------------------
  66. 325 BA=PEEK(55)+(256*PEEK(56)):REM START OF BUFFER
  67. 330 BB=40900:REM TOP OF BASIC BUFFER
  68. 335 BC=0:REM BUFFER COUNTER
  69. 340 BP=BA+1:REM BUFFER NEXTCHAR POINTER
  70. 345 BD=0:REM BUFFER FLAG SET IF OPEN
  71. 350 BE=BA+1:REM BOTTOM OF BUFFER
  72. 355 BG=0:REM BUFFER FORNEXT INDEX
  73. 360 BJ=0:REM RS232 STRT RX BFR
  74. 365 BK=0:REM RS232 END RX BFR
  75. 370 BM=0:REM RS232 CHAR COUNT
  76. 375 FC=0:REM CIS IMAGE FLAG
  77. 380 BI=0:REM BUFFER BLOCK SIZE
  78. 385 BN=0:REM LAST BLOCK FORNEXT INDEX
  79. 390 BO=0:REM LAST BLOCK FLAG
  80. 395 BQ=0:REM LAST BLOCK INDEX
  81. 400 BR=BR:REM 64 TO 64 FLAG
  82. 405 REM ------------------------
  83. 410 REM SET UP FORMATTING AND
  84. 415 REM MISCELLANEOUS VARIABLES
  85. 420 REM ------------------------
  86. 425 XN=17
  87. 430 XF=19
  88. 435 U=212
  89. 440 POKE56328,0:REM START CLOCK
  90. 445 B1=56577
  91. 450 B2=56579
  92. 455 OH=B1:REM FOR 1660
  93. 460 HI=32:REM FOR 1660
  94. 465 LO=255-HI:REM FOR 1660
  95. 470 M3=0:REM MODEM 300 FLAG FOR 1660
  96. 475 B3=56329:REM CLOCK
  97. 480 D=256
  98. 485 W=1
  99. 490 E$=CHR$(147):REM CLRHOME
  100. 495 J$=CHR$(13):REM CARRIAGE RETURN
  101. 500 L$=CHR$(32)+CHR$(157):REM SPACE PLUS LEFT CRSR
  102. 505 P$=CHR$(19):REM HOME
  103. 510 F$=CHR$(17):REM CRSR DOWN
  104. 515 SP$=CHR$(32):REM SPACE
  105. 520 SQ$=SP$+SP$+SP$+SP$+SP$+SP$+SP$+SP$+SP$+SP$:REM 10 SPACES
  106. 525 SR$=J$+RIGHT$(SQ$,5)
  107. 530 CU$=CHR$(145):REM CRSR UP
  108. 535 O=8
  109. 540 G$=F$+F$+F$+F$+F$:REM 5 CRSR DOWNS
  110. 545 BL$=P$+G$
  111. 550 ER$=BL$+F$+F$+F$+SQ$+SQ$+SQ$+SQ$+CU$+CHR$(13)
  112. 555 AK$=BL$+F$+F$+F$+F$+SQ$+SQ$+SQ$+SQ$+CU$+CHR$(13)
  113. 560 LI$=CHR$(164):FORI=1TO6:LI$=LI$+LI$:NEXTI:LI$=RIGHT$(LI$,40)
  114. 565 E=0
  115. 570 CR$=CHR$(29)
  116. 575 EI$=CR$+CR$+CR$
  117. 580 EJ$=EI$+EI$+EI$
  118. 585 EJ$=EJ$+EJ$:REM 18 CRSR RIGHTS
  119. 590 ES$=P$+EI$+F$+"[205]ODEM [208]ORT [211]TATUS ="
  120. 595 UQ$=BL$+G$+G$+F$
  121. 600 FC$=CHR$(32)+CHR$(32)+CHR$(32)+CHR$(157)+CHR$(157)+CHR$(157)
  122. 605 ACK=6
  123. 610 NAK=21
  124. 615 EOT=4
  125. 620 CAN=24
  126. 625 Z=131
  127. 630 V=132
  128. 635 F=255
  129. 640 TR=0:REM DSK ERROR TRACK VARIABLE
  130. 645 SE=0:REM DSK ERROR SECTOR VARIABLE
  131. 650 M=288
  132. 655 P=1
  133. 660 C$=CHR$(0)
  134. 665 O$=CHR$(18)+CHR$(32)+CHR$(157)+CHR$(146)
  135. 670 G$=CHR$(133)
  136. 675 REM -------------------------------
  137. 680 REM PRINT FIRST USER SCREEN AND GET
  138. 685 REM DUPLEX SETTINGS FROM USER
  139. 690 REM -------------------------------
  140. 695 PRINTE$LI$
  141. 700 PRINTSPC(8)"[216]MODEM [208]ROTOCOL [212]ERMINAL"J$LI$
  142. 705 PRINTER$+SQ$+"[216][205][207][194][213][198] - [214]6.8.1"J$
  143. 710 PRINTSQ$"([195]) 1984 [195]HRIS [203]AISER"+J$J$
  144. 715 PRINTF$F$"<1>  [194]ULLETIN [194]OARD = [198]ULL-[196]UPLEX"
  145. 720 PRINTF$"<2>  [195]64 TO [195]64     = [200]ALF-[196]UPLEX"J$
  146. 725 PRINT"[197]NTER CHOICE <1-2>"
  147. 730 GOSUB2635
  148. 735 IFA$="1"THENBR=0:GOTO765
  149. 740 IFA$="2"THENBR=W:GOTO765
  150. 745 GOTO725
  151. 750 REM -------------------------------
  152. 755 REM    SET UP TRANSLATION TABLES
  153. 760 REM -------------------------------
  154. 765 DIMF%(255):REM FROM/RECEIVE ARRAY
  155. 770 DIMT%(255):REM TO/SEND ARRAY
  156. 775 DIMU%(1,132)
  157. 780 DIMB%(8)
  158. 785 PRINT:PRINT
  159. 790 PRINTE$:PRINT:PRINT:PRINT"    [ [195]REATING [212]RANSLATION [212]ABLES ]"
  160. 795 FORJ=1TO32
  161. 800 T%(J)=J
  162. 805 NEXTJ
  163. 810 FORJ=32TO64
  164. 815 T%(J)=J
  165. 820 NEXTJ
  166. 825 T%(13)=13
  167. 830 T%(20)=8
  168. 835 FORJ=65TO90
  169. 840 T%(J)=J+32
  170. 845 NEXTJ
  171. 850 FORJ=91TO95
  172. 855 T%(J)=J
  173. 860 NEXTJ
  174. 865 FORJ=193TO218
  175. 870 T%(J)=J-128
  176. 875 NEXTJ
  177. 880 T%(146)=P
  178. 885 T%(133)=P
  179. 890 T%(147)=0
  180. 895 T%(137)=3
  181. 900 T%(134)=17
  182. 905 T%(138)=0
  183. 910 T%(221)=126:REM SHIFTED MINUS EQUALS TILDE FOR DECMATE EASYCOM ACCESS
  184. 915 FORJ=0TOF
  185. 920 K=T%(J)
  186. 925 IFK<>0THENF%(K)=J:F%(K+128)=J
  187. 930 NEXTJ
  188. 935 F%(19)=0:F%(147)=0
  189. 940 F%(12)=147
  190. 945 F%(8)=157
  191. 950 REM --------------------------
  192. 955 REM CIS C64 IMG HEADER VALUES
  193. 960 REM FOR AUTO HEADER STRIPPER
  194. 965 REM --------------------------
  195. 970 B%(4)=4:REM CIS IMAGE HEADER
  196. 975 B%(5)=0:REM FOR HEADER STRIPPER
  197. 980 B%(6)=67
  198. 985 B%(7)=67
  199. 990 B%(8)=51
  200. 995 REM ------------------------------
  201. 1000 REM  DISPLAY MAIN TERMINAL SCREEN
  202. 1005 REM  WITH USER REMINDERS FOR F KEY
  203. 1010 REM          DEFINITIONS
  204. 1015 REM ------------------------------
  205. 1020 PRINTE$
  206. 1025 PRINTCHR$(14)
  207. 1030 BC=BB-BP
  208. 1035 PRINTLI$
  209. 1040 IFBRTHENPRINT"          64 TO 64 [200]ALF-[196]UPLEX":GOTO1055
  210. 1045 REM THANKS FOR POINTING THESE OUT, PRESTON AND LALLIE
  211. 1050 IFBR=0THENPRINT"          [195][201][211]-[194][194][211]  [198]ULL-[196]UPLEX"
  212. 1055 IFPEEK(661)=61THENPRINT"  [200][201][199][200] [211][208][197][197][196] [212]ERMINAL [205]ODE - 1200 [194]AUD":GOTO1065
  213. 1060 IFPEEK(600)=0THENPRINT"         300 [194]AUD [212][197][210][205][201][206][193][204] [205][207][196][197]"
  214. 1065 PRINT"           <F1> = [205]AIN   [205]ENU"
  215. 1070 PRINT"           <F3> = [194]UFFER [205]ENU"
  216. 1075 PRINTF$"  [194]UFFER = <F5>[207]PEN <F7>[195]LOSE <F8>[218]ERO"
  217. 1080 PRINT"  [211]CREEN = <F6>[208]RINT [211]CREEN"
  218. 1085 PRINTLI$
  219. 1090 IFA$=CHR$(CAN)THENPRINTG$+EJ$+"[212]RANSFER [195][193][206]CELLED!"
  220. 1095 IFFA=WTHENIFBRTHENPRINT#5,J$J$";;64 [212][207] 64 [216][205][207][196][197][205] [198][201][204][197] [212][210][193][206][211][198][197][210] [197][206][196][197][196],"
  221. 1100 IFFA=WTHENIFBRTHENPRINT#5,";;[207][212][200][197][210] [207][208][197][210][193][212][207][210] [194][193][195][203][160][212][207][160][212][197][210][205][201][206][193][204][160][205][207][196][197]"
  222. 1105 IFFA=WTHENIFBRTHENPRINTJ$";;[207][212][200][197][210] [207][208][197][210][193][212][207][210] [195][213][197][196] [217][207][213] [193][210][197] [194][193][195][203] [212][207]"
  223. 1110 IFFA=WTHENIFBRTHENPRINT";;[212][197][210][205][201][206][193][204][160][205][207][196][197]...."
  224. 1115 IFFA=WTHENFA=0
  225. 1120 PRINT#5,CHR$(XN);
  226. 1125 GOTO60
  227. 1130 REM -------------------------------
  228. 1135 REM      XMODEM DOWNLOAD LOOP
  229. 1140 REM  WARNING- DIDDLE WITH THIS AT
  230. 1145 REM   YOUR OWN RISK - IT IS VERY
  231. 1150 REM TOUCHY AND SENSITIVE TO CHANGE
  232. 1155 REM -------------------------------
  233. 1160 PRINTE$+F$"[201]S OTHER [211][217][211]TEM READY TO [212][210][193]NSMIT? ([217]/[206])":GOSUB2635
  234. 1165 IFA$="N"THEN1020
  235. 1170 PRINTJ$
  236. 1175 IFA$<>"Y"THEN1160
  237. 1180 G=3
  238. 1185 K$="W"
  239. 1190 GOSUB1960
  240. 1195 WA=0:BN=0:BO=0:BQ=0
  241. 1200 N=0
  242. 1205 PRINTJ$J$"[196]OWNLOADING  "F$ER$"[211]TATUS"
  243. 1210 WB=0:FE=0
  244. 1215 ID=0
  245. 1220 BL=0
  246. 1225 FD=0
  247. 1230 FORI=WTOV:GET#5,A$:NEXTI:IFHETHENGOSUB2710:GOTO1245:REM KEEPS STACK CLEAN
  248. 1235 GOSUB2710:REM SEND NAK
  249. 1240 FORH=WTOP
  250. 1245 CH=0
  251. 1250 REM ----------------------
  252. 1255 REM    MAIN XMODEM LOOP
  253. 1260 REM ----------------------
  254. 1265 FORX=WTOV
  255. 1270 GET#5,A$
  256. 1275 E=PEEK(663)
  257. 1280 IFPEEK(659)=0THEN1310
  258. 1285 REM EXTRA PRINTS HERE NEEDED FOR 300 BAUD DELAY IN COMPILED PROGRAM
  259. 1290 U$=STR$(E)
  260. 1295 IFE=0THENU$=" [210][197][195][197][201][214][201][206][199]"
  261. 1300 IFE=8THENU$=" [215]AITING  "
  262. 1305 IFPEEK(659)THENPRINTES$U$;
  263. 1310 POKE663,0
  264. 1315 IFA$=""THENIFE=OTHENL=L+W:REM O NOT ZERO INTENTIONAL HERE
  265. 1320 IFPEEK(659)THENPRINTUQ$+"300 [194]AUD ";
  266. 1325 IFPEEK(659)THENPRINT"[198]ILE [212]RANSFER IN [208]ROGRESS"
  267. 1330 IFE=0THENL=0
  268. 1335 IFE=0THEN1375
  269. 1340 IFL=6*MTHENL=0:WA=1:WB=WB+1:REM 18 SEC NAK CYCLE TO WORK WITH CIS
  270. 1345 IFWATHENPRINTBL$"[215][193][201][212]ING";WB
  271. 1350 IFWATHENGOSUB2685:REM SEND NAK
  272. 1355 IFWATHENDY=5
  273. 1360 IFWATHENIFPEEK(659)THENGOSUB3385
  274. 1365 IFWATHEN1240
  275. 1370 GOTO1270:REM CHANGED TO TOLERATE PACKET SWITCHERS LIKE COMPUSERVE ETC
  276. 1375 WB=0
  277. 1380 IFX<>WTHEN1400
  278. 1385 IFA$=CHR$(EOT)THENIFBL<2THENBL=0:FC=1:X=V:FD=1:GOTO1410
  279. 1390 IFA$=CHR$(EOT)THENPRINTE$+F$"[197][207][212] - [197]ND [207]F [212]RANSMISSION";
  280. 1395 IFA$=CHR$(EOT)THENX=V:FE=1
  281. 1400 U%(H,X)=ASC(A$+C$)
  282. 1405 CH=CH+U%(H,X)
  283. 1410 NEXTX
  284. 1415 REM ----------------------
  285. 1420 REM  NOW CHECK FOR ERRORS
  286. 1425 REM   IN 128 BYTE PACKET
  287. 1430 REM ----------------------
  288. 1435 IFFD=1THEN1220
  289. 1440 IFFE=1THEN1795
  290. 1445 REM ----------------------
  291. 1450 REM ADJUST CHECKSUM VALUE
  292. 1455 REM ----------------------
  293. 1460 CH=CH-U%(H,V)
  294. 1465 IFCH>32767THENCH=CH-32768:REM IT CAN GET TOO BIG - THIS FIXES IT.
  295. 1470 REM ----------------------
  296. 1475 REM    CHECK FOR START OF HEADER
  297. 1480 REM ERROR BY ADDING HEADER VALUES
  298. 1485 REM ----------------------
  299. 1490 HE=0
  300. 1495 IF(U%(H,W)+U%(H,2)+U%(H,3)AND F)<>0THENHE=1
  301. 1500 REM IFHETHENGOSUB4260:REM SEND NAK
  302. 1505 IFHETHENPRINTER$"[211][207][200] [197]RROR";U%(H,W);U%(H,2);(U%(H,3)AND F)
  303. 1510 IFHETHEN1230
  304. 1515 REM ----------------------
  305. 1520 REM COMPARE CHECKSUM WITH
  306. 1525 REM CALCULATED VALUE
  307. 1530 REM ----------------------
  308. 1535 CE=0
  309. 1540 IFU%(H,V)<>(CHANDF)THENCE=1
  310. 1545 IFCETHENGOSUB2685:REM SEND NAK
  311. 1550 IFCETHENPRINTER$"[195]HECKSUM [197]RROR - [197]XPECTED";(CHANDF)
  312. 1555 IFCETHENPRINTJ$"[210][197][195]EIVED -";U%(H,V)
  313. 1560 IFCETHEN1245
  314. 1565 REM ----------------------
  315. 1570 REM MAKE SURE WE HAVE THE
  316. 1575 REM CORRECT BLOCK HERE
  317. 1580 REM ----------------------
  318. 1585 BL=BL+W:IFBL=256THENBL=0
  319. 1590 PRINTE$BL$"[211]TATUS"J$J$"128 [194]YTE [194]LOCK:"BL
  320. 1595 DB=0
  321. 1600 ID=0
  322. 1605 IFU%(H,2)<>BLTHENDB=1:ID=1
  323. 1610 IFU%(H,2)=BLTHEN1685
  324. 1615 IFDBTHENPRINTER$J$"[194]LOCK [201][196] [205]ISMATCH - [197]XPECTED";BL;J$"[210]ECEIVED -";U%(H,2)
  325. 1620 IFBL-(U%(H,2))=1THENDB=0
  326. 1625 IFBL-(U%(H,2))=1THENPRINT#5,CHR$(ACK):REM ACK THE DUPE
  327. 1630 IFBL-(U%(H,2))=1THENBL=BL-1:PRINT"[212]OSSING IT!"
  328. 1635 IFIDTHENIFDB=0THEN1240
  329. 1640 IFDBTHENGOSUB2685:REM SEND NAK
  330. 1645 IFDBTHENBL=BL-1
  331. 1650 IFBL<1THENBL=1
  332. 1655 IFDBTHEN1245
  333. 1660 ID=0
  334. 1665 REM ----------------------
  335. 1670 REM   HOORAY - ITS A GOOD BLOCK
  336. 1675 REM     LETS GET ANOTHER ONE
  337. 1680 REM ----------------------
  338. 1685 IFH<>PTHENGOSUB2660:REM SEND ACK
  339. 1690 NEXTH
  340. 1695 H=H-W
  341. 1700 IFBL<>1THEN1770
  342. 1705 REM ------------------------------
  343. 1710 REM  THE FIRST BLOCK FALLS THRU
  344. 1715 REM  AND IS EXAMINED TO SEE IF IT
  345. 1720 REM  HAS AN .IMG HEADER. ANY
  346. 1725 REM  INCORRECT BYTE EXEMPTS BLOCK
  347. 1730 REM  ONE FROM FURTHER ACTION AND
  348. 1735 REM  WRITES THE BLOCK TO DISK.
  349. 1740 REM ------------------------------
  350. 1745 IFU%(1,4)<>4THEN1770
  351. 1750 IFU%(1,5)<>0THEN1770
  352. 1755 IFU%(1,6)<>67THEN1770
  353. 1760 IFU%(1,7)<>67THEN1770
  354. 1765 GOTO 4980:REM TOSS FIRST 9
  355. 1770 FORX=EOTTOZ
  356. 1775 PRINT#3,CHR$(U%(W,X));
  357. 1780 NEXTX
  358. 1785 GOSUB2660:REM SEND ACK
  359. 1790 GOTO1240
  360. 1795 GOSUB2660:REM SEND ACK
  361. 1800 CLOSE3
  362. 1805 GOTO2755
  363. 1810 REM ------------------------------
  364. 1815 REM MAIN MENU DISPLAY
  365. 1820 REM ------------------------------
  366. 1825 PRINTCHR$(14)+E$
  367. 1830 IFBRTHENPRINT#5,J$J$";;[207][212][200][197][210] [207][208][197][210][193][212][207][210] [199][207][206][197] [212][207] [205][193][201][206] [205][197][206][213]"
  368. 1835 PRINTE$LI$
  369. 1840 PRINT" [216][205][207][194][213][198] 64-[214]6.8.1  2/4/85  -  [205][193][201][206] [205][197][206][213]"J$LI$
  370. 1845 PRINT"     <1>  [212][197][210][205]INAL"
  371. 1850 PRINTSR$"<2>  [196][207][215]NLOAD - [210]ECEIVE <[210]X> [198]ILE"
  372. 1855 PRINTSR$"<3>  [213][208][204]OAD   - [211]END <[212]X> [198]ILE"
  373. 1860 PRINTSR$"<4>  [196]ISK [196]IRECTORY"
  374. 1865 PRINTSR$"<5>  1650/6420   [193]UTO-[196]IAL"
  375. 1870 PRINTSR$"<6>  [205]ITEY/[200][197][211][201][201] [193]UTO-[196]IAL"
  376. 1875 PRINTSPC(15)"AND [195][194][205] 1660 [196]IAL"
  377. 1880 PRINTSPC(5)"<7>  [216][205][207][194][213][198] [193]UTO-[193]NSWER"
  378. 1885 PRINTSR$"<8>  [200]AYES/[211]IGNALMAN [193]UTO-[196]IAL"
  379. 1890 PRINTSR$"<9>  [209]UIT [208]ROGRAM"F$
  380. 1895 IFBRTHENPRINT"  ;;[198]OR 64 TO 64 FILE TRANSFER, [211][197][206][196][197][210]"
  381. 1900 IFBRTHENPRINT"  ;;<[213][208][204][207][193][196][201][206][199] [211][201][196][197]> [193]LWAYS GOES [198][201][210][211][212]!"
  382. 1905 IFBR=0THENPRINT"[216][205][207][194][213][198] WILL DOWNLOAD .[201][205][199] FILES FROM"
  383. 1910 IFBR=0THENPRINT"[195]OMPU[211]ERVE - [216][205][207][194][213][198] [203]ILLS THE HEADER!";
  384. 1915 GOSUB2635
  385. 1920 IFA$=CHR$(134)THEN3440
  386. 1925 ONVAL(A$)GOTO1020,1160,2885,1935,4510,5415,5225,3000,2650
  387. 1930 GOTO1825
  388. 1935 GOSUB2555
  389. 1940 GOTO1825
  390. 1945 REM ------------------------------
  391. 1950 REM  GET DISK FILENAME SUBROUTINE
  392. 1955 REM ------------------------------
  393. 1960 PRINTE$:PRINTG$
  394. 1965 INPUT"[198]ILENAME E<[216]>IT.";FI$
  395. 1970 CLOSE15:CLOSE15:OPEN15,8,15
  396. 1975 IFFI$="X"THEN1825
  397. 1980 IFFI$="[216]"THEN1825
  398. 1985 PRINTE$:PRINTG$
  399. 1990 INPUT"[198]ILETYPE <[208]>ROGRAM <[211]>EQUENTIAL E<[216]>IT";FT$
  400. 1995 IFFT$="X"THEN1825
  401. 2000 IFFT$="[216]"THEN1825
  402. 2005 FT$=LEFT$(FT$,W)
  403. 2010 CLOSEG:OPENG,8,G,"0:"+FI$+","+FT$+","+K$
  404. 2015 INPUT#15,A,B$,TR,SE
  405. 2020 PRINTE$"   [196]RIVE [211]TATUS:";A;B$;TR;SE
  406. 2025 IFA=0THENRETURN
  407. 2030 CLOSEG:RETURN
  408. 2035 GOTO1825
  409. 2040 REM ------------------------------
  410. 2045 REM XMODEM UPLOAD PROTOCOL LOOP
  411. 2050 REM ------------------------------
  412. 2055 G=6
  413. 2060 FL=0
  414. 2065 UF=0
  415. 2070 K$="R"
  416. 2075 GOSUB1960:IFATHEN1825
  417. 2080 BL=0
  418. 2085 FA=W
  419. 2090 REM ------------------------------
  420. 2095 REM READ A 128 BYTE BLOCK INTO
  421. 2100 REM TRANSMIT/SEND ARRAY.
  422. 2105 REM ------------------------------
  423. 2110 PRINTER$+F$+F$+F$+"[210][197][193]DING      "
  424. 2115 E1=0:
  425. 2116 REM -----------------------------
  426. 2117 REM CONSTRUCT 132 BYTE TRANSMIT
  427. 2118 REM BLOCK - HEADER BUILT FIRST
  428. 2119 REM -----------------------------
  429. 2120 FORY=1TOP
  430. 2125 U%(Y,W)=W:REM THE FIRST BYTE IS ALWAYS 1 EXCEPT EOT WHEN IT BECOMES 4
  431. 2130 BL=BL+W:IFBL=256THENBL=0
  432. 2135 U%(Y,2)=BL:REM THE 2ND BYTE IS THE BLOCK NUMBER
  433. 2140 U%(Y,3)=F-BL:REM THE THIRD BYTE IS 255 MINUS THE BLOCK NUMBER
  434. 2145 CH=W+U%(Y,2)+U%(Y,3):REM ADD THE FIRST 3 BYTES TOGETHER TO START CHECKSUM
  435. 2150 PRINTER$+F$+F$+F$+F$+"128 [194]YTE [194]LOCK:"BL;
  436. 2155 FORX=EOTTOZ:REM BYTES 4 THRU 131 ARE 128 BYTES OF THE FILE BEING SENT
  437. 2160 GET#6,B$
  438. 2165 REM ------------------------------
  439. 2170 REM THE NEXT TWO LINES FIX A
  440. 2175 REM COMMON XMODEM BUG. PEEK 144
  441. 2180 REM OR ST VARIABLE BECOMES NON
  442. 2185 REM ZERO ONE BYTE EARLY. THIS
  443. 2190 REM FORCES ONE ADDITIONAL BYTE TO
  444. 2195 REM BE READ AT THE END OF THE FILE
  445. 2200 REM SO THE COMPLETE FILE IS SENT.
  446. 2205 REM ------------------------------
  447. 2210 E=PEEK(144):IFETHENE1=E1+W
  448. 2215 IFE1<2THEN2265:REM GET 1 MORE BYTE
  449. 2220 FL=Y:REM LOOP TO PACK LAST BLOCK
  450. 2225 FORA=XTOZ
  451. 2230 U%(Y,A)=26:REM CTRL-Z PER SPEC
  452. 2235 CH=CH+U%(Y,A)
  453. 2240 IFCH>32767THENCH=CH-32768:REM IN CASE IT GETS TOO BIG THIS CUTS IT DOWN
  454. 2245 NEXTA
  455. 2250 U%(Y,V)=CHANDF:REM BYTE 132 IS SUM OF BYTES MODULA 256
  456. 2255 REM LOGICAL AND DOES THIS WHEN ANDED WITH 255
  457. 2260 GOTO2300
  458. 2265 U%(Y,X)=ASC(B$+C$)
  459. 2270 CH=CH+U%(Y,X)
  460. 2275 NEXTX
  461. 2280 IFCH>32767THENCH=CH-32768
  462. 2285 U%(Y,V)=CHANDF
  463. 2290 NEXTY
  464. 2295 Y=Y-W
  465. 2300 IFUFTHEN2380
  466. 2305 IFBRTHENPRINT#5,J$J$";;64 [216][205][207][196][197][205] [198][201][204][197] [212][210][193][206][211][198][197][210] <[210][197][193][196][217]> [195][213][197],"
  467. 2310 IFBRTHENPRINT#5,";;[193][210][210][201][214][197][196].... [160][198][210][207][205][160][212][200][197] [207][212][200][197][210][160][207][208][197][210][193][212][207][210]"
  468. 2315 IFBRTHENPRINT#5,";;[212][207][160][210][197][195][197][201][214][197] >[199][207] <F1> [206][207][215], [212][207] [196][207][215][206][204][207][193][196]"
  469. 2320 IFBRTHENPRINT#5,";;[193][215][193][201][212][201][206][199] [217][207][213][210] [198][201][210][211][212] [206][193][203] [212][207][160][211][212][193][210][212] [212]X."
  470. 2325 IFBRTHENPRINTER$";;64 [216][205][207][196][197][205] [198][201][204][197] [212][210][193][206][211][198][197][210] <[210][197][193][196][217]> [195][213][197],"
  471. 2330 IFBRTHENPRINT";;[211][197][206][212] [212][207][160][212][200][197] [207][212][200][197][210] [207][208][197][210][193][212][207][210]...."
  472. 2335 REM ---- WAIT FOR NAK ----
  473. 2340 GET#5,A$
  474. 2345 GETB$
  475. 2350 REM FIX FOR FILE STILL OPEN BUG
  476. 2355 IFB$=CHR$(136)THENCLOSEG:GOTO1020
  477. 2360 PRINTER$+CU$+CU$+"[215]AITING FOR [206][193][203] TO [212]X.  - <F7> TO [193]BORT!"
  478. 2365 PRINT"[194]E PATIENT - THIS MAY TAKE 30
  479. 2370 [153]"     SECONDS OR MORE"
  480. 2375 [139]A$[179][177][199](NAK)[167]2340
  481. 2380 UF[178]1
  482. 2385 BL[178]BL[171]Y
  483. 2390 Y[178]0
  484. 2395 [153]E$[170]F$"ASCILE (null)RANSFER IN (null)ROGRESS <F7> TO ATNBORT!"
  485. 2400 [153]ER$[170]CU$[170]"(null)(null)(null)OAD (null)TATUS"J$"(null)ATN(null)"BL$[170]CU$[170]"(null)(null)(null)OADING"
  486. 2405 Y[178]Y[170]W
  487. 2410 [139]Y[177]P[167]2110
  488. 2415 BL[178]BL[170]W
  489. 2420 [153]BL$"128 PEEKYTE PEEKLOCK:"BL;
  490. 2425 [143] ------------------------------
  491. 2430 [143] TRANSMIT THE WHOLE 134 BYTES
  492. 2435 [143] ------------------------------
  493. 2440 [129]X[178]W[164]V
  494. 2445 [152]5,[199](U%(Y,X));
  495. 2450 [130]X
  496. 2455 [143] ------------------------------
  497. 2460 [143]     NOW GET ACK NAK EOT ETC
  498. 2465 [143] ------------------------------
  499. 2470 A[178]0
  500. 2475 A[178]A[170]1
  501. 2480 [161]#5,A$
  502. 2485 [161]B$
  503. 2490 [139]B$[178][199](136)[167][152]5,[199](CAN):[160]6:[143] RICK STERLINGS FIX
  504. 2495 [139]B$[178][199](136)[167]1020
  505. 2500 [139]A[177]5000[167]2420
  506. 2505 [139]A$[178]""[167]2475
  507. 2510 [139]A$[178][199](ACK)[167][139]FL[178]Y[167]FL[178]0:[141]2725:[141]2745:[160]6:[137]2755
  508. 2515 [139]A$[178][199](ACK)[167][139]FL[179][177]Y[167][153]ER$AK$"ATNLEN(null)":[137]2405
  509. 2520 [139]A$[178][199](ACK)[167][139]Y[178]P[167][153]ER$AK$"ATNLEN(null)":[137]2110
  510. 2525 [139]A$[178][199](NAK)[167][153]ER$"(null)ATN(null)"AK$:[137]2420
  511. 2530 [139]A$[178][199](CAN)[167][160]6:[137]2755
  512. 2535 [137]2470
  513. 2540 [143] -----------------------------
  514. 2545 [143]      DISK DIRECTORY
  515. 2550 [143] -----------------------------
  516. 2555 [153]E$
  517. 2560 [139]BR[167][152]5,J$J$";;(null)(null)LEFT$VAL(null) (null)(null)VAL(null)ATN(null)(null)(null) LENLEFT$VALLEN(null)RIGHT$(null)CHR$ STR$RIGHT$(null)VALLEN(null)(null)(null)(null)"
  518. 2565 [160]1
  519. 2570 [159]1,8,0,"$0"
  520. 2575 [161]#1,A$,A$
  521. 2580 [161]#1,A$,A$
  522. 2585 [139]A$[178]""[167]2615
  523. 2590 [161]#1,A$,B$
  524. 2595 [153][198](A$[170]C$)[170][198](B$[170]C$)[172]D;
  525. 2600 [161]#1,A$:[139]A$[178]""[167][153]:[137]2580
  526. 2605 [153]A$;
  527. 2610 [137]2600
  528. 2615 [160]1
  529. 2620 [153]J$J$" [ ATNNY (null)EY (null)ETURNS ]"
  530. 2625 [141]2635
  531. 2630 [142]
  532. 2635 [161]A$
  533. 2640 [139]A$[178]""[167]2635
  534. 2645 [142]
  535. 2650 [139]M3[167][151]B1,([194](B1)[176]HI):[143] HANG UP 1660
  536. 2655 [153]E$F$F$F$"  [ (null)YPE '(null)(null)(null)' TO RESTART! ]":[128]
  537. 2660 [152]5,[199](ACK);:[143] UPLOAD SEND ACK NAK EOT
  538. 2665 [153]ER$"ATNLEN(null)";BL;
  539. 2670 Q[178]0
  540. 2675 [153]"                 ";J$"                          ";J$"            "
  541. 2680 [142]
  542. 2685 Q[178]Q[170]W:WA[178]0
  543. 2690 [139]Q[178]11[167][160]3
  544. 2695 [139]Q[178]11[167]A$[178][199](CAN)
  545. 2700 [139]Q[178]11[167][152]5,A$
  546. 2705 [139]Q[178]11[167]2755
  547. 2710 [152]5,[199](NAK);
  548. 2715 [153]ER$"(null)ATN(null)";FC$;Q
  549. 2720 [142]
  550. 2725 [152]5,[199](EOT);
  551. 2730 [153]ER$"VAL(null)(null)"
  552. 2735 [142]
  553. 2740 [161]#5,A$
  554. 2745 [139]A$[178]""[167]2740
  555. 2750 [142]
  556. 2755 [153]E$ER$[170]F$[170]F$[170]F$"[ (null)(null)(null)RIGHT$(null)VAL - ATNNY (null)EY FOR (null)VAL(null)(null)INAL ]"
  557. 2760 [139]LC[167][153]LC;"TRIES"
  558. 2765 Q[178]0
  559. 2770 [143] -----------------------------
  560. 2775 [143]      SOUND ROUTINE
  561. 2780 [143] -----------------------------
  562. 2785 SO[178]54272:CO[178]0
  563. 2790 [151]SO[170]1,250
  564. 2795 [151]SO[170]5,10
  565. 2800 [151]SO[170]15,200
  566. 2805 [151]SO[170]24,15
  567. 2810 [129]CL[178]1[164]96:[143] CHANGED FROM 12 TO 96
  568. 2815 [151]SO[170]4,21
  569. 2820 [130]CL
  570. 2825 [151]SO[170]4,20
  571. 2830 [161]B$:CO[178]CO[170]1:[139]CO[178]10[167]2840
  572. 2835 [139]B$[178]""[167]2790
  573. 2840 [139]LC[167]LC[178]0
  574. 2845 SO[178]54272
  575. 2850 [129]CL[178]0[164]144:[143] CHANGED FROM 24 TO 144
  576. 2855 [151]SO[170]CL,0
  577. 2860 [130]CL
  578. 2865 [137]1020:[143] TO TERMINAL
  579. 2870 [143] -----------------------------
  580. 2875 [143]    START UPLOAD SUBROUTINE
  581. 2880 [143] -----------------------------
  582. 2885 [153]E$[170]F$"RIGHT$S OTHER (null)(null)(null)TEM READY TO (null)VALLENEIVE? ((null)/(null))":[141]2635
  583. 2890 [139]A$[178]"N"[167]1020
  584. 2895 [139]A$[178]"(null)"[167]1020
  585. 2900 [139]A$[179][177]"Y"[167]2885
  586. 2905 [153]E$"(null)PLOADING  "F$
  587. 2910 [137]2055
  588. 2915 [153]E$
  589. 2920 [153]J$"  ATNCCEPT PRESENT COLOR SETTING? (Y/N)"
  590. 2925 [153]F$
  591. 2930 [141]2635
  592. 2935 [139]A$[178]"N"[167][141]5050
  593. 2940 [153]E$F$
  594. 2945 [153]F$[166]8)"(null)ELECT STR$ESIRED PEEKAUD (null)ATE"
  595. 2950 [153]F$J$J$
  596. 2955 [153][166]13)"<3>  FOR  300"J$
  597. 2960 [153][166]13)"<1>  FOR 1200"
  598. 2965 [141]2635
  599. 2970 [139]A$[178]"1"[167]270
  600. 2975 [139]A$[178]"3"[167]285
  601. 2980 [137]2965
  602. 2985 [143] -----------------------------
  603. 2990 [143]    HAYES/SIGNALMAN REDIALER
  604. 2995 [143] -----------------------------
  605. 3000 [153][199](14)
  606. 3005 [153]E$
  607. 3010 [153][166]5)"LEFT$AYES/(null)IGNALMAN ATN(null)(null)(null)-STR$RIGHT$ATN(null)CLOSE(null)(null)STR$VAL"J$J$J$
  608. 3015 DD[178]15
  609. 3020 LC[178]0
  610. 3025 [133]"VALNTER DESIRED DELAY <CR>=15";DD
  611. 3030 [139]DD[177]30[167]DD[178]30
  612. 3035 [152]5,"AT":[143] TRY TO GET MODEMS ATTENTION
  613. 3040 [161]#5,IT$:[139]IT$[178]""[167]DY[178]3:[141]3385:[137]3035:[143] QUIT  -CK TO RESPOND- HF
  614. 3045 IT[178]([194](B1)[175]16):[143] TEST CARRIER BIT - INTERFACE IS ? - HF
  615. 3050 [153]
  616. 3055 [153]J$"    VALNTER NUMBER YOU WISH TO DIAL"
  617. 3060 [153]F$[170]"    <F7> ATNBORTS ATNUTODIAL"J$
  618. 3065 [133]NU$
  619. 3070 NV$[178]J$[170]"ATN(null)STR$(null)"[170]NU$
  620. 3075 [153]E$
  621. 3080 [153]"STR$IALING ";NU$;" <F7> (null)O ATNBORT"
  622. 3085 [129]I[178]1[164]255
  623. 3090 [161]#5,A$
  624. 3095 [130]I
  625. 3100 [143] ------------------------
  626. 3105 [143]   DIAL THE SMARTMODEM
  627. 3110 [143] ------------------------
  628. 3115 [152]5,NV$
  629. 3120 [153]NV$
  630. 3125 [143] ------------------------
  631. 3130 [143]     CHECK FOR ECHO
  632. 3135 [143] ------------------------
  633. 3140 I[178]0
  634. 3145 I[178]I[170]1
  635. 3150 [161]#5,R$
  636. 3155 [161]A$
  637. 3160 [139]A$[178][199](136)[167]1020
  638. 3165 [139]R$[178]"(null)"[167]3230
  639. 3170 [139]I[179]150[167]3145
  640. 3175 [153]J$[170]"(null)O VALCHO"
  641. 3180 [152]5,"AT"
  642. 3185 I[178]0
  643. 3190 I[178]I[170]1
  644. 3195 [161]#5,R$
  645. 3200 [139]R$[178]"(null)"[167]3075
  646. 3205 [139]I[179]100[167]3190
  647. 3210 [137]3075
  648. 3215 [143] ------------------------
  649. 3220 [143]  GET MODEM RESPONSE
  650. 3225 [143] ------------------------
  651. 3230 [161]A$
  652. 3235 [139]A$[178][199](136)[167]1020
  653. 3240 SC[178]0
  654. 3245 TC$[178][199](0)
  655. 3250 LC[178]LC[170]1
  656. 3255 [153]BL$"ATNTTEMPT (null)UMBER";LC
  657. 3260 A[178][194](B3):[143] CHECK CLOCK
  658. 3265 PB[178][194](B1)
  659. 3270 [139](PB[175]16)[179][177]IT[167]2755:[143] IS CARRIER? - HF
  660. 3275 B[178][194](B3)
  661. 3280 [161]A$:[161]#5,R$
  662. 3285 [139]A$[178][199](136)[167]1020
  663. 3290 [139]A[178]B[167]3275:[143] GET UPDATE IF NO CHANGE
  664. 3295 SC[178]SC[170]1
  665. 3300 [153]BL$[170]F$[170]F$[170]"STR$ELAY LENOUNT =";SC
  666. 3305 PB[178][194](B1)
  667. 3310 [139](PB[175]16)[179][177]IT[167]2755:[143] IS CARRIER? - HF
  668. 3315 [139]SC[179]DD[167]3260
  669. 3320 [152]5,"A"
  670. 3325 I[178]0
  671. 3330 TC$[178][199](0)
  672. 3335 I[178]I[170]1
  673. 3340 [143] EVEN IF NO CARRIER DETECT PROVIDED - CHECK RESULTS FROM MODEM
  674. 3345 [161]#5,R$
  675. 3350 [139]R$[178]"LEN"[167]2755:[143] CONNECT
  676. 3355 [139]R$[178]"(null)"[167]3075:[143] NO CARRIER - HF
  677. 3360 [139]I[179]255[167]3335
  678. 3365 [137]3075
  679. 3370 [143] ------------------------------
  680. 3375 [143] WHOLE SECONDS DELAY SUBROUTINE
  681. 3380 [143] ------------------------------
  682. 3385 SC[178]0
  683. 3390 A[178][194](B3):[143] CHECK CLOCK
  684. 3395 B[178][194](B3)
  685. 3400 [161]B$:[139]B$[178][199](136)[167][142]
  686. 3405 [139]A[178]B[167]3395:[143] GET UPDATE IF NO CHANGE
  687. 3410 SC[178]SC[170]1
  688. 3415 [139]SC[179]DY[167]3390
  689. 3420 [142]
  690. 3425 [143] ------------------------------
  691. 3430 [143] BUFFER/PRINTER CONTROL MENU
  692. 3435 [143] ------------------------------
  693. 3440 [153]E$LI$
  694. 3445 [152]5,[199](XF);
  695. 3450 [139]BR[167][152]5,J$J$";;(null)(null)LEFT$VAL(null) (null)(null)VAL(null)ATN(null)(null)(null) CHR$(null)(null)VAL (null)(null) PEEK(null)ASCASCVAL(null) (null)VAL(null)(null)"
  696. 3455 [153]"         PEEK(null)ASCASCVAL(null)CLOSELEN(null)(null)(null)(null)(null)(null)CLOSE(null)VAL(null)(null)"
  697. 3460 BI[178](BP[171]BE)[173]255:CI[178][181](BI):DI[178]BI[171]CI:[139]DI[167]CI[178]CI[170]1
  698. 3465 BC[178]BB[171]BP:E3[178]BP[171]BE
  699. 3470 [153]BC;"PEEKYTES ATNVAILABLE,";E3;"PEEKYTES (null)SED"
  700. 3475 [153][166]10);CI;"LENPEEK(null) STR$ISK PEEKLOCKS"
  701. 3480 [153]LI$;
  702. 3485 [153]SR$"<1>  (null)VAL(null)(null)INAL"
  703. 3490 [153]SR$"<2>  (null)AVE PEEKUFFER TO STR$ISK/(null)RINTER"
  704. 3495 [153]SR$"<3>  (null)OAD PEEKUFFER FROM STR$ISK"
  705. 3500 [153]SR$"<4>  (null)END <(null)X> PEEKUFFER TO (null)ODEM"
  706. 3505 [153]SR$"<5>  (null)END <(null)X> (null)VAL(null). ASCILE TO (null)ODEM"
  707. 3510 [153]SR$"<6>  STR$ISPLAY PEEKUFFER TO (null)CREEN"
  708. 3515 [153]SR$"<7>  (null)VAL(null). ASCILE (null)EADER/(null)RINTER"
  709. 3520 [153]SR$"<8>  STR$ISK STR$IRECTORY"
  710. 3525 [153]SR$"<9>  (null)UIT (null)ROGRAM"
  711. 3530 [141]2635
  712. 3535 [139]A$[178][199](133)[167]1825
  713. 3540 [145][197](A$)[137]1020,3625,3970,4100,4170,3895,4290,3546,2650
  714. 3545 [137]3440
  715. 3546 [141]2555
  716. 3550 [143] ------------------------
  717. 3555 [143]   OPEN BUFFER ROUTINE
  718. 3560 [143] ------------------------
  719. 3565 BD[178]1:[153]J$J$"[ PEEKUFFER OPEN ] -";BC;"PEEKYTES ATNVAIL."
  720. 3570 [137]1120
  721. 3575 [143] ------------------------
  722. 3580 [143]  CLOSE BUFFER ROUTINE
  723. 3585 [143] ------------------------
  724. 3590 BD[178]0
  725. 3595 [129]X[178]1[164]500:[130]X
  726. 3600 [153]J$J$"[ PEEKUFFER CLOSED ]"
  727. 3605 [137]1120
  728. 3610 [143] ------------------------
  729. 3615 [143] SAVE BUFFER TO DISK/PRINTER
  730. 3620 [143] ------------------------
  731. 3625 [153]E$
  732. 3630 [153]"  (null)AVE TO - <1> STR$ISK -OR- <2> (null)RINTER":[141]2635
  733. 3635 [129]BG[178]BE[164]BE
  734. 3640 [139]A$[178]"1"[167]3665
  735. 3645 [139]A$[178]"2"[167]3795
  736. 3650 [143] ------------------------
  737. 3655 [143] SAVE BUFFER TO DISK
  738. 3660 [143] ------------------------
  739. 3665 RW$[178]"W"
  740. 3670 [153]E$
  741. 3675 [153][166]8)"(null)ATN(null)VALCLOSEPEEK(null)ASCASCVAL(null) (null)(null)CLOSESTR$RIGHT$(null)(null) (null)(null)STR$VAL"J$
  742. 3680 [141]4885
  743. 3685 [139]A$[178]"A"[167]1020
  744. 3690 [139]A[178]0[167]3710
  745. 3695 [160]8
  746. 3700 [141]5095
  747. 3705 [137]3440
  748. 3710 [153]:[153]"  (null)AVING";BP[171]BE;" PEEKYTES"
  749. 3715 BI[178](BP[171]BE)[173]255:CI[178][181](BI):DI[178]BI[171]CI:[139]DI[167]CI[178]CI[170]1
  750. 3720 [153]J$" ";CI;"LENPEEK(null) STR$ISK PEEKLOCKS - <F7> ATNBORTS!"
  751. 3725 [129]BG[178]BE[164]BP
  752. 3730 [152]8,[199]([194](BG));
  753. 3735 [161]A$:[139]A$[178][199](136)[167]BG[178]BP:BD[178]0
  754. 3740 [130]BG
  755. 3745 BD[178]0
  756. 3750 [152]8:[160]8
  757. 3755 [153]F$[170]F$"  (null)ATN(null)VAL LEN(null)(null)(null)(null)VAL(null)VAL - (null)ERO THE PEEKUFFER? ((null)/(null))"
  758. 3760 [141]2635
  759. 3765 [139]A$[178]"Y"[167]BP[178]BE
  760. 3770 [139]A$[178]"(null)"[167]BP[178]BE
  761. 3775 [137]3440
  762. 3780 [143] ------------------------
  763. 3785 [143] SAVE BUFFER TO PRINTER
  764. 3790 [143] ------------------------
  765. 3795 [153]E$
  766. 3800 [153][166]12)"(null)(null)RIGHT$(null)(null)CLOSEPEEK(null)ASCASCVAL(null) (null)(null)STR$VAL"
  767. 3805 [153]"   <(null)PACEBAR> TO (null)TART/(null)AUSE PRINTING"
  768. 3810 [153][166]14)"<F7> ATNBORTS!"J$:[141]2635
  769. 3815 [159]4,4,7:L[178]1:QF[178]0:[129]RO[178]0[164]80
  770. 3820 [129]BG[178]BE[164]BP
  771. 3825 A$[178][199]([194](BG[170]RO)):[139]A$[178][199](10)[167]A$[178][199](29)[170][199](157)
  772. 3830 [152]4,[199](17)A$;:[139]A$[178][199](13)[167]L[178]L[170]1:[141]3870
  773. 3835 [153]A$;
  774. 3840 [161]A$:[139]A$[178][199](136)[167]BG[178]BP:[160]4:BD[178]0:[137]3440
  775. 3845 [139]A$[178][199](32)[167][141]2635
  776. 3850 [130]BG
  777. 3855 BD[178]0:[143] CLOSE BUFFER TO AVOID GARBAGE AT THE END
  778. 3860 [160]4
  779. 3865 [137]3440
  780. 3870 [139]L[178]60[167]L[178]1:[129]X[178]1[164]7:[152]4:[130]X
  781. 3875 [142]
  782. 3880 [143] ------------------------
  783. 3885 [143] DISPLAY BUFFER TO SCREEN
  784. 3890 [143] ------------------------
  785. 3895 [153]E$
  786. 3900 [153][166]10)"STR$RIGHT$(null)(null)(null)ATN(null)CLOSEPEEK(null)ASCASCVAL(null)CLOSE(null)(null)STR$VAL"
  787. 3905 [153]"   <(null)PACEBAR> TO (null)TART/(null)AUSE DISPLAY"
  788. 3910 [153][166]13)"<F7> ATNBORTS!"J$:[141]2635
  789. 3915 [129]BG[178]BE[164]BP
  790. 3920 [153][199]([194](BG));
  791. 3925 [161]A$:[139]A$[178][199](136)[167]BG[178]BP:BD[178]0:[137]3440
  792. 3930 [139]A$[178][199](32)[167][141] 2635
  793. 3935 [130]BG
  794. 3940 BD[178]0:[143] CLOSE BUFFER TO AVOID GARBAGE AT THE END
  795. 3945 [153]J$[170]F$F$"[ VALND OF PEEKUFFER (null)EAD - (null)RESS ANY KEY ]":[141]2635
  796. 3950 [137]3440
  797. 3955 [143] ------------------------
  798. 3960 [143] LOAD BUFFER FROM DISK
  799. 3965 [143] ------------------------
  800. 3970 BP[178]BE:[143] ZERO BUFFER
  801. 3975 RW$[178]"R"
  802. 3980 [153]E$
  803. 3985 [153]"   (null)(null)ATNSTR$ ASCRIGHT$(null)VALCLOSE(null)(null) PEEK(null)ASCASCVAL(null)CLOSEASC(null)(null)(null)CLOSESTR$RIGHT$(null)(null)CLOSE(null)(null)STR$VAL"J$
  804. 3990 [141]4885:[143] GET FILENAME & ERROR ROUTINE
  805. 3995 [139]A$[178]"A"[167]1025:[143] ERROR GOTO TERMINAL
  806. 4000 [139]A[178]0[167]4020
  807. 4005 [160]8
  808. 4010 [141]5095
  809. 4015 [137]3440
  810. 4020 [153]F$"           <F7> ATNBORTS!"
  811. 4025 [161]#8,A$:A$[178]A$[170][199](0)
  812. 4030 [161]B$
  813. 4035 [139]B$[178][199](136)[167][160]8:[137]3440
  814. 4040 E[178][194](144)
  815. 4045 [139]E[167] 4075
  816. 4050 [151]BP,[198](A$)
  817. 4055 BP[178]BP[170]1
  818. 4060 [139]BP[179]BB[167] 4025
  819. 4065 [153]F$F$"  [ PEEKUFFER ASCULL ]":BD[178]0:[160]8:[141]5095:[137]3440
  820. 4070 BD[178]0
  821. 4075 [160]8
  822. 4080 [137]3440
  823. 4085 [143] ------------------------------
  824. 4090 [143]   SEND BUFFER DIRECT TO MODEM
  825. 4095 [143] ------------------------------
  826. 4100 [153]E$F$"(null)END <(null)X> PEEKUFFER TO (null)ODEM"J$
  827. 4105 [153]"PEEKYTES:";BP[171]BE;" <F7> ATNBORTS!"J$[170]F$
  828. 4110 [129]BG[178]BE[164]BP
  829. 4115 A$[178][199]([194](BG))
  830. 4120 [152]5,[199](T%([198](A$)));
  831. 4125 [153]A$;
  832. 4130 [161]B$:[139]B$[178][199](136)[167]BG[178]BP:BD[178]0:[137]3440
  833. 4135 [161]#5,R$:[139]R$[178][199](XF)[167][141]5690
  834. 4140 [130]BG
  835. 4145 BD[178]0:[143] CLOSE BUFFER
  836. 4150 [137]2755
  837. 4155 [143] -----------------------------
  838. 4160 [143] SEND SEQ FILE DIRECT TO MODEM
  839. 4165 [143] -----------------------------
  840. 4170 RW$[178]"R"
  841. 4175 [153]E$F$"(null)END <(null)X> (null)VAL(null). ASCILE TO (null)ODEM <F7> ATNBORTS"J$
  842. 4180 [141]4885:[139]A$[178]"A"[167]1020
  843. 4185 [139]A[167][160]8:[141]5095:[137]3440
  844. 4190 [161]#8,A$
  845. 4195 E[178][194](144)
  846. 4200 [139]E[167][160]8:[137]2755
  847. 4205 [139]A$[178]""[167]4190
  848. 4210 [152]5,[199](T%([198](A$)));
  849. 4215 [161]#5,R$:[139]R$[178]""[167]4230
  850. 4220 [139]R$[178][199](XF)[167][141]5690
  851. 4225 [153][199](F%([198](R$)));
  852. 4230 [161]B$
  853. 4235 [139]B$[178][199](136)[167][160]8:[137]3440
  854. 4240 [137]4190
  855. 4245 [143] ------------------------
  856. 4250 [143]  ZERO AND CLOSE BUFFER
  857. 4255 [143] ------------------------
  858. 4260 BP[178]BE:[153]J$J$"[ PEEKUFFER (null)EROED & LENLOSED ]"
  859. 4265 BD[178]0
  860. 4270 [137]1120
  861. 4275 [143] ------------------------------
  862. 4280 [143]    BOBS SEQ. READER/PRINTER
  863. 4285 [143] ------------------------------
  864. 4290 [139]BR[167][152]5,J$J$";;(null)(null)LEFT$VAL(null)CLOSE(null)(null)VAL(null)ATN(null)(null)(null)CLOSECHR$(null)(null)VAL (null)(null) (null)VAL(null). (null)VALATNSTR$VAL(null)"
  865. 4295 [160]15
  866. 4300 [160]1:[159]1,4,7:L[178]1:P[178]0
  867. 4305 [153]E$
  868. 4310 [153]"      (null)VAL(null). ASCRIGHT$(null)VAL (null)VALATNSTR$VAL(null)CLOSEATN(null)STR$CLOSE(null)(null)RIGHT$(null)(null)VAL(null)"J$
  869. 4315 FI$[178]"":[143] CLEAN STRING
  870. 4320 [153]F$"ASCILENAME E<(null)>IT!";:[133]FI$
  871. 4325 [139]FI$[178]"X"[167][160]1:[137]3440
  872. 4330 [139]FI$[178]"(null)"[167][160]1:[137]3440
  873. 4335 [160]8:[159]8,8,8,FI$[170]",S,R":[141]4465
  874. 4340 [153]E$[170]F$[170]F$"LENHOICE <F1>(null)RINTER <F3>(null)CREEN <F5>ATNBORT"
  875. 4345 [153]F$"       <F7> (null)(null)CHR$CHR$(null)VAL(null) (null)AUSE/LENONTINUE"J$LI$
  876. 4350 [161]A$:[139]A$[179][199](133)[176]A$[177][199](135)[167]4350
  877. 4355 [139]A$[178][199](133)[167]P[178]1:[137]4370:[143] <F1> PRINTER
  878. 4360 [139]A$[178][199](135)[167][160]1:[160]8:[137]3440:[143] <F5> ABORT
  879. 4365 [139]A$[178][199](134)[167]4370:[143] <F3> SCREEN
  880. 4370 [139]P[178]1[167][152]1,[199](145)[199](14)FI$[199](17)[199](15):[152]1:L[178]4:
  881. 4375 [161]#8,A$:[139]A$[178][199](10)[167]A$[178][199](29)[170][199](157):[151]212,0:[139]ST[178]0[167]4385
  882. 4380 [139]ST[178]64[167]4435
  883. 4385 [153]A$;
  884. 4390 [139]P[178]1[167][152]1,A$;:L[178]1:[139]A$[178][199](13)[167]L[178]L[170]1:[141]4485
  885. 4395 [161]A$:[139]A$[178]""[167]4375
  886. 4400 [153]:[153]F$"(null)ATN(null)(null)VAL:<F1>(null)RINTER <F3>(null)CREEN <F5>ATNBORT"F$
  887. 4405 [161]A$:[139]A$[179][199](133)[176]A$[177][199](136)[167]4405
  888. 4410 [139]A$[178][199](133)[167]P[178]1:[152]1,[199](17):[152]1:L[178]1:[137]4425
  889. 4415 [139]A$[178][199](134)[167]P[178]0:[137]4425
  890. 4420 [139]A$[178][199](135)[167]4430
  891. 4425 [137]4375
  892. 4430 [153]F$[170]F$"[ (null)PERATION ABORTED ]":[141]5095
  893. 4435 [139]P[178]1[167][152]1:[129]X[178]L[170]1[164]3:[152]1:[130]X:[152]1,[199](145)
  894. 4440 [160]1:[160]8:[153]F$F$F$"=> (null)VALATNSTR$/(null)(null)RIGHT$(null)(null)CLOSEATN(null)(null)(null)LEFT$VAL(null)CLOSEASCRIGHT$(null)VAL? ((null)/(null))"
  895. 4445 [161]A$:[139]A$[178]""[167]4445
  896. 4450 [139]A$[178]"Y"[167][160]15:[137]4300
  897. 4455 [139]A$[179][177]"N"[167]4445
  898. 4460 [153]E$:[137]3440
  899. 4465 [160]15:[159]15,8,15:[132]15,N,N$,TR,SE
  900. 4470 [139]N[177]1[167][153]F$F$"STR$RIGHT$(null)(null) VAL(null)(null)(null)(null):"N;N$;TR;SE:[160]15:[137]4475
  901. 4475 [139]N[177]1[167][153]F$F$"[ (null)OAD ATNBORTED ]":[141]5095:[141]4440
  902. 4480 [142]
  903. 4485 [139]L[178]60[167]L[178]1:[129]X[178]1[164]7:[152]1:[130]X
  904. 4490 [142]
  905. 4495 [143] -----------------------------
  906. 4500 [143]       1650/6420 AUTODIAL
  907. 4505 [143] -----------------------------
  908. 4510 [153]E$[170]F$[170]F$[166]11)"[ (null)ETTING (null)ODEM ]"
  909. 4515 [151]B2,32:[143] SET CIA
  910. 4520 [151]B1,0:[143] HANG UP PHONE
  911. 4525 DY[178]1
  912. 4530 [141]3385
  913. 4535 [153]E$
  914. 4540 [153][166]8)"1650/6420 ATN(null)(null)(null)-STR$RIGHT$ATN(null) (null)(null)STR$VAL"J$
  915. 4545 [153]"(null)ET (null)-STR$ (null)WITCH TO STR$"
  916. 4550 [153]"    (null)-ATN (null)WITCH TO (null)"
  917. 4555 [153]"    LEFT$-ASC (null)WITCH TO ASC"
  918. 4560 [153]J$
  919. 4565 [153]F$[170]"VALNTER (null)EDIAL STR$ELAY. <CR>=15 (null)ECONDS"
  920. 4570 CK[178]15
  921. 4575 [133]CK
  922. 4580 [153]F$[170]F$[170]"VALNTER (null)UMBER TO STR$IAL AND (null)RESS <(null)VAL(null)(null)(null)(null)>"
  923. 4585 [133]NU$
  924. 4590 [151]B1,32:[143] PICK UP THE PHONE
  925. 4595 CJ[178]0
  926. 4600 DY[178]2
  927. 4605 [141]3385:[143] WAIT 2 SECONDS
  928. 4610 D[178][195](NU$)
  929. 4615 [153]E$F$"STR$IALING: ";NU$;J$;J$
  930. 4620 [129]X[178]1[164]D
  931. 4625 N$[178][202](NU$,X,1)
  932. 4630 [153]N$;
  933. 4635 N[178][197](N$)
  934. 4640 [139]N[178]0[167]N[178]10
  935. 4645 [141] 4675
  936. 4650 [130]X
  937. 4655 [137] 4755
  938. 4660 [143] --------------------------
  939. 4665 [143] SUBROUTINE TO PULSE THE LINE
  940. 4670 [143] --------------------------
  941. 4675 [129]N1[178]1[164]N
  942. 4680 [151]B1,0:[143] HANG IT UP BRIEFLY
  943. 4685 [151]B1,0:[143] MAKE SURE
  944. 4690 DY[178]13
  945. 4695 [141] 4835
  946. 4700 [151]B1,32:[143] PICK IT UP BRIEFLY
  947. 4705 [151]B1,32:[143] SECOND POKE SEEMS TO ENHANCE ACCURACY OF OLDER 1650S
  948. 4710 DY[178]20
  949. 4715 [141] 4835
  950. 4720 [130]N1
  951. 4725 DY[178]60
  952. 4730 [141] 4835
  953. 4735 [142]
  954. 4740 [143] --------------------------
  955. 4745 [143]     CHECK FOR CARRIER
  956. 4750 [143] --------------------------
  957. 4755 [153]BL$[170]G$[170]EJ$[170]"<F7> TO ATNBORT!"
  958. 4760 [139][194](B1)[179]99[167]2755:[143] CARRIER DETECTED TO ONLINE
  959. 4765 [161]B$
  960. 4770 [139]B$[178][199](136)[167]1825
  961. 4775 DY[178]5:[143] UP 2 TO 5 DELAY TO PICK UP CARRIER
  962. 4780 [141]3385
  963. 4785 [139]B$[178][199](136)[167]1825
  964. 4790 CJ[178]CJ[170]1
  965. 4795 [139]5[172]CJ[177]CK[167][151]B1,0
  966. 4800 [139]5[172]CJ[177]CK[167]DY[178]5
  967. 4805 [139]5[172]CJ[177]CK[167][141]3385
  968. 4810 [139]5[172]CJ[177]CK[167] 4590
  969. 4815 [137] 4755
  970. 4820 [143] --------------------------
  971. 4825 [143] SHORT DELAY SUBROUTINE
  972. 4830 [143] --------------------------
  973. 4835 SC[178]0
  974. 4840 A[178][194](56325):[143] CHECK TIMER A
  975. 4845 B[178][194](56325)
  976. 4850 [139]A[178]B[167] 4845:[143] GET UPDATE IF NO CHANGE
  977. 4855 SC[178]SC[170]1
  978. 4860 [139]SC[179]DY[167] 4840
  979. 4865 [142]
  980. 4870 [143] --------------------------
  981. 4875 [143] LOAD/SAVE FILENAME ROUTINE
  982. 4880 [143] --------------------------
  983. 4885 [160]15:[153][170]J$[170]J$
  984. 4890 [133]"  ASCILENAME E<(null)>IT! ";FI$
  985. 4895 [139]FI$[178]"X"[167]3440
  986. 4900 [139]FI$[178]"(null)"[167]3440
  987. 4905 [160]8:[159]8,8,8,"0:"[170]FI$[170]",S,"[170]RW$
  988. 4910 [159]15,8,15:[132]15,A,B$,TR,SE
  989. 4915 [153]:[153]F$"  STR$RIGHT$(null)(null) VAL(null)(null)(null)(null):"A;B$;TR;SE:[142]
  990. 4920 [142]
  991. 4925 [143] ------------------------------
  992. 4930 [143] KILL CIS IMG HEADER HERE. THIS
  993. 4935 [143] IS CHECKED AGAINST VALUES FROM
  994. 4940 [143] INITIALIZATION ROUTINES TO BE
  995. 4945 [143] SURE NOTHING GOOD IS DELETED
  996. 4950 [143] ------------------------------
  997. 4955 [129]Z[178]4[164]8:[143] DOUBLE CHECK IT
  998. 4960 [139]U%(1,Z)[179][177]B%(Z)[167]FC[178]Z:Z[178]8
  999. 4965 [130]Z
  1000. 4970 [139]U%(1,4)[178]4[167] 4980
  1001. 4975 [139]FC[179][177]1[167] 5020
  1002. 4980 [153]J$J$"[ STR$VAL(null)VAL(null)RIGHT$(null)CHR$ LENRIGHT$(null) RIGHT$(null)ATNCHR$VAL LEFT$VALATNSTR$VAL(null) ]"
  1003. 4985 DY[178]1:[141]3385
  1004. 4990 [129]X[178]10[164]Z:[143] THIS KILLS IT BY NOT PRINTING FIRST 9 TO DISK
  1005. 4995 [152]3,[199](U%(W,X));
  1006. 5000 [130]X
  1007. 5005 [153]E$:[143] CLEAR THE CRAP FROM THE SCREEN
  1008. 5010 FC[178]0
  1009. 5015 [137]1785
  1010. 5020 [139]FC[178]4[167]FC[178]0:[137]1770
  1011. 5025 [139]FC[178]8[167]FC[178]0:[137] 4980
  1012. 5030 [137]1770
  1013. 5035 [143] ------------------------------
  1014. 5040 [143]     USER COLOR SELECTION
  1015. 5045 [143] ------------------------------
  1016. 5050 [153]J$"  RIGHT$NPUT DESIRED LENPEEK(null) COLOR CODES FOR"
  1017. 5055 [153]"  CHARACTER, BORDER, AND BACKGROUND."
  1018. 5060 [153]"  (null)(null),(null)(null),(null)(null) - (SEPARATED BY COMMAS)."
  1019. 5065 [133]D1,D2,D3
  1020. 5070 [151]646,D1:[151]53280,D2:[151]53281,D3
  1021. 5075 [142]
  1022. 5080 [143] ------------------------------
  1023. 5085 [143]      TIME DELAY ROUTINE
  1024. 5090 [143] ------------------------------
  1025. 5095 [129]X[178]1[164]3000:[130]X
  1026. 5100 [142]
  1027. 5105 [143] -----------------------
  1028. 5110 [143]      SCREEN PRINT
  1029. 5115 [143] -----------------------
  1030. 5120 [152]5,[199](XF);
  1031. 5125 [139]MT[178]1[167]G1$[178][199](142):G2$[178]G1$:G0$[178]G2$:[137]5135
  1032. 5130 G2$[178]G1$[170][199](15):G0$[178]G2$
  1033. 5135 [159]4,4,7:[152]4:[139]ST[178][171]128[167][160]4:TS[178]2:[142]
  1034. 5140 [157]4
  1035. 5145 [129]IT[178]0[164]24:[153][166]2);
  1036. 5150 [129]TT[178]0[164]39:A[178]([194]((IT[172]40)[170]TT[170]1024))
  1037. 5155 [139]A[177]128[167]A[178]A[171]128:G4[178]1:G0$[178]G0$[170][199](18)
  1038. 5160 [139]MT[178]1[175]A[177]64[167]A[178]A[171]64
  1039. 5165 [139]A[177]0[175]A[179]32[167]A[178]A[170]64:[137]5185 
  1040. 5170 [139]A[177]31[175]A[179]64[167]5185 
  1041. 5175 [139]A[177]63[175]A[179]96[167]A[178]A[170]128:[137]5185 
  1042. 5180 [139]A[177]95[175]A[179]128[167]A[178]A[170]64:[137]5185 
  1043. 5185 G0$[178]G0$[170][199](A):[139]A[178]34[175]G4[178]1[167]G0$[178]G0$[170][199](34)
  1044. 5190 [139]G4[178]1[167]G0$[178]G0$[170][199](146):G4[178]0
  1045. 5195 [130]TT:[153]G0$:G0$[178]G2$
  1046. 5200 [130]IT
  1047. 5205 [152]4:[160]4:[137]1120
  1048. 5210 [143] ------------------------------
  1049. 5215 [143]       XMOBUF AUTO-ANSWER
  1050. 5220 [143] ------------------------------
  1051. 5225 [153]E$
  1052. 5230 [153]"        (null)MOBUF ATN(null)(null)(null)-ATN(null)(null)(null)VAL(null)CLOSE(null)(null)STR$VAL"
  1053. 5235 [153]F$"(null)ET APPLICABLE MODEM SWITCHES..."
  1054. 5240 [153]F$"    (null)-STR$ SWITCH TO STR$"
  1055. 5245 [153]"    (null)-STR$ SWITCH TO STR$"
  1056. 5250 [153]"    (null)-ATN SWITCH TO ATN"
  1057. 5255 [153]"    LEFT$-ASC SWITCH TO ASC"
  1058. 5260 [153]F$F$F$"AND... [ LEFT$IT ATNNY (null)EY TO (null)ELECT (null)ODEM ]":[141]2635
  1059. 5265 [153]CU$CU$"(null)ODEM"
  1060. 5270 [153]"TYPE : <1>  1650/6420  <2>  (null)ITEY/LEFT$VAL(null)RIGHT$RIGHT$ "
  1061. 5275 [141]2635
  1062. 5280 [139]A$[178]"1"[167][151]B2,32:[151]B1,.:[137]5295:[143] HANG UP 1650/6420
  1063. 5285 [139]A$[178]"2"[167][151]B1,32:[151]B2,.:[137]5295:[143] HANG UP MITEY/HES
  1064. 5290 [137]5275
  1065. 5295 [139]A$[178]"1"[167][153]CU$CU$[166]23)"                 "
  1066. 5300 [139]A$[178]"2"[167][153]CU$CU$[166]7)"               "
  1067. 5305 [153]F$F$"(null)VALATNSTR$(null), (null)ATNRIGHT$(null)RIGHT$(null)CHR$CLOSEASC(null)(null)CLOSELENATN(null)(null) - <F7> ATNBORTS!"
  1068. 5310 [161]A$:[139]A$[178][199](136)[167]1825:[143] ABORT TO MENU
  1069. 5315 MM[178]1:[143] COUNTER
  1070. 5320 [139]([194](B1)[175]8)[179][177]0[167]5310:[143] WAIT FOR RING
  1071. 5325 [143] ---------------------------
  1072. 5330 [143]        CARRIER DETECT
  1073. 5335 [143] ---------------------------
  1074. 5340 [151]B2,38:[151]B1,0:[143] START CARRIER HIGH
  1075. 5345 [129]X[178]1[164]100:[130]X
  1076. 5350 [139][194](B1)[178]201[167]2755:[143] CARRIER DETECTED TO ONLINE
  1077. 5355 [139][194](B1)[178]217[167][151]B1,2:[143] IF 2 HIGHS THEN GO LOW
  1078. 5360 [143] GOSUB5175
  1079. 5365 [139][194](B1)[178]203[167]2755:[143] CARRIER DETECTED TO ONLINE
  1080. 5370 [139][194](B1)[178]219[167][151]B1,0:[143] IF 2 LOWS THEN GO HI
  1081. 5375 MM[178]MM[170]1:[139]MM[179]10[167]5345
  1082. 5380 [151]B2,38:[151]B1,32:[137]2755:[143] CARRIER DETECT TO ONLINE
  1083. 5385 [151]B1,32:[151]B2,0:[143] HANG UP MITEY/HES
  1084. 5390 [153]F$F$"  (null)(null)CLOSELENATN(null)(null)RIGHT$VAL(null)CLOSESTR$VAL(null)VALLEN(null)VALSTR$ - LEFT$ATN(null)CHR$ING (null)(null)":[141]5680
  1085. 5395 [137]5225
  1086. 5400 [143] ------------------------------
  1087. 5405 [143]      MITEY/HES AUTO-DIAL
  1088. 5410 [143] ------------------------------
  1089. 5415 [153]E$
  1090. 5420 [139]M3[167][151]B1,([194](B1)[176]HI):[143] HANG UP 1660
  1091. 5425 [153]"  1660/(null)ITEY(null)O/LEFT$VAL(null)RIGHT$RIGHT$ ATN(null)(null)(null)-STR$RIGHT$ATN(null)CLOSE(null)(null)STR$VAL"J$
  1092. 5430 [151]B1,32:[151]B2,0:[143] HANG UP
  1093. 5435 [153]F$"(null)ET (null)-STR$ SWITCH TO STR$    -    <F7> ATNBORTS!"
  1094. 5436 [153]J$"LEFT$YPHEN INSERTS A 2 SEC DELAY"
  1095. 5440 [153]F$F$"VALNTER (null)UMBER TO STR$IAL:";:ND$[178]"":[153]" ";
  1096. 5445 [133]NN$
  1097. 5470 ND$[178]NN$
  1098. 5480 [143] ---- DIALER ----
  1099. 5485 [153]F$J$"(null)UMBER OF (null)RIES?CLOSE- <CR>=5":XT$[178]"5":[133]XT$:XT[178][197](XT$):TX[178]0
  1100. 5490 [161]B$:[139]B$[178][199](136)[167]5700:[143] TO MENU
  1101. 5495 [143] PRINTF$+F$+F$"  (null)ATNRIGHT$(null)RIGHT$(null)CHR$ ASC(null)(null) STR$RIGHT$ATN(null) (null)(null)(null)VAL.... <F7> ATNBORTS!"
  1102. 5500 [151]B2,38:[151]B1,32:[143] HANG UP
  1103. 5505 DY[178]2:[141]3385:[139]B$[178][199](136)[167]5700:[143] WAIT 2 SECS
  1104. 5510 [151]B1,4:[143] PICK UP PHONE
  1105. 5515 DY[178]3:[141]3385:[139]B$[178][199](136)[167]5700
  1106. 5520 [153]E$F$
  1107. 5525 [153]"         <F7> ATNBORTS!"F$
  1108. 5530 TX[178]TX[170]1:[153][166]30)"(null)RY:"TX
  1109. 5535 LN[178][195](ND$):MM[178]1:[153]CU$"STR$IALING:";
  1110. 5540 VV$[178][202](ND$,MM,1)
  1111. 5545 [139]VV$[178]"-"[167]DY[178]2:[141]3385:[139]B$[178][199](136)[167]5700
  1112. 5550 VV[178][197](VV$):[139]VV[178]0[167]VV[178]10
  1113. 5555 [129]MV[178]1[164]VV
  1114. 5560 [151]B1,32:[151]B1,32:[143] HANG IT UP
  1115. 5561 [129]QQ[178]1[164]30:[143] DIAL TIMING
  1116. 5562 [130]QQ
  1117. 5563 [151]B1,4:[151]B1,4:[143] PICK IT UP
  1118. 5564 [129]QQ[178]1[164]50:[143] DIAL TIMING
  1119. 5565 [130]QQ
  1120. 5566 [161]B$:[139]B$[178][199](136)[167]5700
  1121. 5570 [130]MV:[143] SEND NEXT PULSE
  1122. 5575 [141]5680
  1123. 5580 MM[178]MM[170]1:[139]MM[179][178]LN[167]5540
  1124. 5585 [143] SEND NEXT DIGIT
  1125. 5590 [143] ------------------------
  1126. 5595 [143]      CARRIER DETECT
  1127. 5600 [143] ------------------------
  1128. 5605 MM[178]0
  1129. 5610 [151]B2,38:[151]B1,02:[143] PICK UP PHONE AND START CARRIER LOW
  1130. 5615 [141]5680:[143] HI/LO DELAY
  1131. 5620 [139][194](B1)[178]203[167]2755:[143] CARRIER DETECTED TO ONLINE
  1132. 5625 [139][194](B1)[178]91[167][139][194](B2)[178]38[167]M3[178]1
  1133. 5630 [139]M3[167]2755
  1134. 5635 [139][194](B1)[178]219[167][151]B1,0:[143] IF 2 LOW'S THEN GO HI
  1135. 5640 [139][194](B1)[178]201[167]2755:[143] CARRIER DETECTED TO ONLINE
  1136. 5645 [139][194](B1)[178]217[167][151]B1,2 :[143] IF 2 HI'S THEN GO LOW
  1137. 5650 MM[178]MM[170]1:[139]MM[179]10[167]5615
  1138. 5655 [139]M3[167]2755
  1139. 5660 [153]J$F$F$"  (null)(null) LENATN(null)(null)RIGHT$VAL(null) STR$VAL(null)VALLEN(null)VALSTR$":[151]B1,32:[151]B2,0:[143] HANG UP
  1140. 5665 [139]TX[179][177]XT[167][137]5490
  1141. 5670 [153]F$F$F$"  [ LEFT$ATN(null)CHR$ING (null)(null) (null)HONE ]":[151]B1,32:[151]B2,0
  1142. 5675 DY[178]3:[141]3385:[137]1825:[143] TO MENU AFTER 3 SECS
  1143. 5680 DY[178]2:[141]3385
  1144. 5685 [142]
  1145. 5690 [161]#5,R$:[139]R$[179][177][199](XN)[167]5690
  1146. 5695 [142]
  1147. 5700 [151]B1,32:[151]B2,0:[137]1825:[143] HANG UP HES/MITEY/1660 THEN GOTO MENU.
  1148.